package com.briup.springboot_web.exception;

import com.briup.springboot_web.util.Response;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理类
 */
@RestControllerAdvice //对web层方法增强异常处理功能
public class GlobalExceptionHandler {

    //当发生异常类型为Exception类型及其子类自动调用该方法
    @ExceptionHandler(Exception.class)
    public Response handleException(Exception ex){
        System.out.println("进行全局异常处理");
        //1.当异常发生时，打印异常控制台
        ex.printStackTrace();
        //2.响应错误的提示信息到前端
        if(ex instanceof ServiceException){//当异常类型为自定义业务异常，直接显示错误提示信息
            return Response.error(ex.getMessage());
        }
        //语法异常，希望提示用户内部错误。
        return  Response.error("服务器内部错误，请联系客服");
    }
}
